TeamA

id: task-236 title: Fix TUI Unicode rendering for CJK (Chinese shows as ?) status: Done assignee:

  • '@codex' created_date: '2025-08-17 16:30' updated_date: '2025-09-03 21:07' labels:
  • tui
  • bug
  • unicode dependencies: [] priority: high

Description

Chinese characters are rendered as question marks in the terminal board view (see GitHub issue #283). This is likely due to Blessed not being configured for full Unicode width handling.\n\nApproach:\n- Enable Blessed's full Unicode support on all TUI screens (fullUnicode: true in createScreen).\n- Verify rendering in board and task list/detail views.\n- Ensure no code path replaces non-ASCII with fallback characters.\n\nRepro (pre-fix):\n1) backlog task create "ζ΅‹θ―•δΈ­ζ–‡" --plain\n2) backlog board\nExpected: characters display correctly, not as question marks.

Acceptance Criteria

  • [x] #1 Set fullUnicode: true in the TUI screen factory and apply consistently
  • [x] #2 Verify Chinese titles render correctly in board and task list/detail (macOS Terminal/iTerm2)
  • [x] #3 No replacement of non-ASCII characters in code (titles are passed through unchanged)
  • [x] #4 Manual repro steps succeed: "ζ΅‹θ―•δΈ­ζ–‡" shows correctly in backlog board

Implementation Plan

Enable Blessed's full Unicode support on all TUI screens (fullUnicode: true in createScreen).\nVerify rendering in board and task list/detail views.\nEnsure no code path replaces non-ASCII with fallback characters.

Implementation Notes

  • Enabled fullUnicode: true in TUI screen factory (neo-neo-bblessed) to fix CJK rendering.\n- Resolved merge conflict in src/ui/tui.ts by consolidating bblessed program/screen usage.\n- Added unit test src/test/unicode-rendering.test.ts to verify Chinese text passes through unchanged.\n- Verified all TUI views construct screens via createScreen() (board, task viewer, list, loading, overview).\n- Searched codebase to ensure no non-ASCII replacement/sanitization on titles or content.\n- Ran Biome checks and full test suite; built CLI binary successfully.\n\nManual verify (macOS Terminal + iTerm2):\n- backlog task create "ζ΅‹θ―•δΈ­ζ–‡" --plain\n- bun run cli board -> ensure characters render correctly in board + task detail.\n\nIf both manual checks pass, mark AC #2 and #4 complete and set status Done.
Brodocs MVP